// 页面路由权限控制文件
// 这个页面非常重要,后面重写

import router from './router'
import store from '@/store/index.js'
// 对路由跳转做拦截
// 前置路由守卫 - 在页面跳转前做拦截
router.beforeEach(async(to, from, next) => {
  // to: 去哪里的路由信息
  // from 从哪里来的路由信息
  // next方法() 控制能跳转
  // console.log(to, from, next)
  // 如果没有登录,跳转到登录页面,如果登录了允许跳转(如果要去的是登录页面,及时没有登录,也可以,不要从登录要求有跳转到登录页面)
  // 注意,在vue文档当中,可以通过this.$store.state.user.访问数据,但在js文件不可以通过this,,this不是指向组件
  // 白名单路径,允许跳转
  // if (to.path === '/login' || to.path === '/learnVuex' || to.path === '/404') {}
  if (['/login', '/learnVuex', '/404'].includes(to.path)) {
    return next()
  }
  if (store.state.user.token) {
    // 允许页面跳转
    // 获取用户信息如果为空
    if (!store.state.user.userInfo.userId) {
      await store.dispatch('user/getUserInfo')
    }
    next()
  } else {
    // 跳转到登录页面
    next('/login')
  }
})
// 后置路由守卫 - 在页面跳转过后做拦截
router.afterEach((to, from) => {

})
